你的第一个 Dora 游戏第三章:精灵与动画:绘制和动画处理本页总览第三章:精灵与动画:绘制和动画处理 在本章节中,你将学会如何在 Dora 中加载精灵图像,并将其添加到场景中。此外,你还将学习如何使用帧动画,为角色和敌人添加动画效果,使游戏更加生动有趣。 目标 加载和显示精灵 创建帧动画 为角色和敌人 添加动画效果 1. 加载精灵并显示 在 Dora 中,Sprite 是用来显示图像的基本节点。你可以通过 Sprite 来加载和显示游戏角色和敌人等元素的图像。以下代码展示了如何加载一个精灵并将其添加到场景中: 示例代码import { Sprite, Vec2 } from 'Dora';// 加载并显示一个图元精灵const playerSprite = Sprite('Image/art.clip|playerGrey_walk1');if (!playerSprite) error('创建图元精灵失败!');playerSprite.order = 1;playerSprite.position = Vec2(0, 0); // 设置位置playerSprite.addTo(Director.entry); // 添加到当前场景 在这个例子中,我们通过 Sprite('Image/art.clip|playerGrey_walk1') 来加载一个精灵。playerGrey_walk1 是精灵图的资源名,包含在 Image/art.clip 图集中。position 属性用于设置精灵的显示位置。 2. 创建帧动画 要为角色添加行走或其他重复的动作,我们可以使用帧动画。帧动画由一组图像组成,通过快速切换这些图像来产生动画效果。 在 Dora 中,我们可以创建一个播放帧动画的函数 playAnimation,如下所示: dodge_the_creeps/init.tsximport { Node, Sprite, sleep } from 'Dora';const playAnimation = (node: Node.Type, name: string) => { node.removeAllChildren(); // 清空节点中的其他子节点 const interval = 0.2; // 设置帧切换的时间间隔 const frames = [ Sprite(`Image/art.clip|${name}1`) ?? Sprite(), Sprite(`Image/art.clip|${name}2`) ?? Sprite() ]; for (let frame of frames) { // 当动画的名称以 `enemy` 开头时,精灵会自动旋转到设定的角度 if (name.startsWith('enemy')) { frame.angle = -90; // 调整角度 } frame.addTo(node); } let i = 0; node.loop(() => { frames[i].visible = true; i = (i + 1) % 2; // 切换帧 frames[i].visible = false; sleep(interval); return false; });}; 在 playAnimation 函数中: node.removeAllChildren():清空当前节点的子节点,确保不会叠加其他元素。 frames 数组包含了动画所需的帧。 node.loop() 创建了一个循环,定期切换帧以实现动画效果。 sleep(interval) 用来设置帧切换的间隔时间。 3. 将动画应用到角色和敌人